home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Unix / Shells / zsh / Source / src / config / bz.help < prev    next >
Encoding:
Text File  |  1994-04-07  |  6.8 KB  |  212 lines

  1. cat <<EOH | $PAGER
  2. NAME
  3.  
  4.     buildzsh -- zsh configuration tool
  5.  
  6. SYNOPSIS
  7.  
  8.     buildzsh [parameters]
  9.  
  10.     buildzsh builds all or some of the files config.h, signals.h,
  11.     and Makefile.  These files are necessary for building zsh.
  12.     For more detailed explanation, see FILES below.
  13.  
  14.     By default it builds them all, this can be done by simply saying
  15.  
  16.         ./buildzsh
  17.  
  18.     from the shell level while in the same directory with buildzsh.
  19.     For not building all of the abovementioned files, see note 3)
  20.     under BOOLEAN PARAMETERS.
  21.  
  22.     buildzsh supports building zsh for several architectures
  23.     from the same, untouched, source tree.  See MULTIARCHITECTURE
  24.     SUPPORT below.
  25.  
  26. PARAMETERS
  27.  
  28.     buildzsh knows about two kinds of parameters:
  29.  
  30.     CONFIGURABLE and BOOLEAN
  31.  
  32. CONFIGURABLE PARAMETERS
  33.  
  34.     configurable might also be called assignable: they can be
  35.     assigned some value by using the form
  36.  
  37.         param=value
  38.  
  39.     For example
  40.  
  41.         ./buildzsh LIBS=-ltermcap
  42.  
  43.     sets the configurable parameters "LIBS" to the value "-ltermcap"
  44.  
  45.     param        explanation            default
  46.     -----        -----------            -------
  47.     CC        C compiler            $DEFAULT_C_CC
  48.     CFLAGS        C compiler flags    for example    $DEFAULT_C_CFLAGS
  49.     CFLAGS_D    C preprocessor flags (-Dfoo)    $DEFAULT_C_CFLAGS_D
  50.     CFLAGS_W    C warning flags         (-ansi)    $DEFAULT_C_CFLAGS_W
  51.     CFLAGS_X    C extra flags        (-m486)    $DEFAULT_C_CFLAGS_X
  52.     CFLAGS_O    C optimizer flags    (-O)    $DEFAULT_C_CFLAGS_O
  53.     CFLAGS_g    C debugger flags     (-g)    $DEFAULT_C_CFLAGS_g
  54.     CFLAGS_z    zsh debugging flags  (-DQDEBUG)    $DEFAULT_C_CFLAGS_z
  55.     LDFLAGS        linking flags         (-x)    \$(CFLAGS)
  56.     LIBS        libraries to link with    (-lnet)    $DEFAULT_C_LIBS
  57.     SRCDIR        source directory        $DEFAULT_C_SRCDIR
  58.     BLDDIR        building directory        $DEFAULT_C_BLDDIR
  59.     ARCH        architecture            (zsh HOSTTYPE)
  60.     ARCHPATT    ARCH pattern 2)            $DEFAULT_C_ARCHPATT
  61.     INSTDIR        installation directory 3)    $DEFAULT_C_INSTDIR
  62.     BINDIR        binary INSTDIR            $DEFAULT_C_BINDIR
  63.     MANDIR        manual page INSTDIR        $DEFAULT_C_MANDIR
  64.     MAKE        the "make" to use        $DEFAULT_C_MAKE
  65.  
  66.     1) CFLAGS overrides all CFLAGS_... parameters, each CFLAGS_...
  67.        overrides any guesses done by buildzsh.
  68.  
  69.     2) For each instance of ARCHPATT in the parameters
  70.        $ARCH_PARMS,
  71.        ARCH will be substituted.
  72.  
  73.     3) If INSTDIR is set, it will be a prefix for BINDIR (=INSTDIR/bin)
  74.        and MANDIR (=INSTDIR/man/man1), BINDIR and MANDIR cannot then be
  75.        set on their own.
  76.  
  77. BOOLEAN PARAMETERS
  78.  
  79.     These parameters are either present or not.
  80.  
  81.     param        explanation            default
  82.     -----        -----------            -------
  83.     config.h    build config.h            $DEFAULT_B_config_h 1)
  84.     signals.h    build signals.h            $DEFAULT_B_signals_h 1)
  85.     hs        build config.h and signals.h    $DEFAULT_B_hs 1)
  86.     Makefile    build Makefile            $DEFAULT_B_mf 1)
  87.     mf        -"-                $DEFAULT_B_mf 1)
  88.     gcc        use gcc instead of default cc    $DEFAULT_B_gcc
  89.     mediumgcc    as "gcc" but with stricter    $DEFAULT_B_mediumgcc
  90.             flags, requires ANSI clean
  91.             zsh code _and_ system headers
  92.     strictgcc    as "gcc" but with very, VERY,    $DEFAULT_B_strictgcc
  93.             strict flags
  94.     ksh        run builzsh with ksh        $DEFAULT_B_ksh 2)
  95.             instead of default sh
  96.     help        show this help            $DEFAULT_B_help
  97.     query        ask configurer's judgement    $DEFAULT_B_query
  98.     auto        do not ask the initial question    $DEFAULT_B_auto 3)
  99.             about "query", start probing
  100.             immediately
  101.     noopt        no optimizing compilation (-O)    $DEFAULT_B_optimize 4)
  102.     debug        debugging compilation (-g)    $DEFAULT_B_debug 4)
  103.     zshdebug    zsh internal debugging used    $DEFAULT_B_zshdebug
  104.     nomake        no make at the end of buildzsh    $DEFAULT_B_nomake
  105.  
  106.     For example
  107.  
  108.         ./buildzsh gcc
  109.  
  110.     will customize Makefile so that gcc and the appropriate
  111.     flags will be used.
  112.  
  113.     1) Normally all of config.h, signals.h, and Makefile
  114.        will be built.  If, however, only certain of these are
  115.        specified at the command line, only those specified will
  116.            be built.  For example "buildzsh mf" will build only the
  117.        Makefile.
  118.  
  119.     2) The default is to use sh.  ksh is needed sometimes if sh
  120.        cannot for some reason handle buildzsh (e.g. Cray's UNICOS),
  121.        in such cases buildzsh normally runs itself automatically
  122.        with ksh and "ksh" option is not needed in the command line.
  123.  
  124.     3) Meant either for the extremely optimistic first-timers or
  125.        for the battle-scarred zsh hackers.
  126.     
  127.     4) These can cancel each other out: if both are present
  128.        but the C compiler cannot handle both of them, optimization
  129.        is turned off and debugging stays.  Only certain compilation
  130.        environments support optimization and debugging simultaneously.
  131.  
  132. MULTIARCHITECTURE SUPPORT
  133.  
  134.     *** CURRENTLY UNSUPPORTED (=SOMEWHAT BROKEN) FEATURE    ***
  135.     *** FOR DESPERATE USE ONLY                ***
  136.     *** IF IT WORKS FOR YOU, FINE, BUT DON'T RELY ON IT.    ***
  137.     *** IF IT DOESN'T WORK FOR YOU, TOUGH.            ***
  138.     *** IF YOU DO THE BUILDING HONOURING THE TRADITION      ***
  139.     *** COMPILING AMONG THE SOURCES, EVERYTHING SHOULD GO    ***
  140.     *** JUST FINE, IGNORE THIS FEATURE.            ***
  141.  
  142.     buildzsh understands using a common source code pool
  143.     for building and installing zsh for several different
  144.     architectures.   The configurable parameters
  145.  
  146.         $ARCH_PARMS
  147.  
  148.     are special: if these contain the pattern
  149.  
  150.         $DEFAULT_C_ARCHPATT
  151.  
  152.     this pattern will be replaced with a string describing
  153.     the particular architecture.  By default this string is
  154.     determined by buildzsh itself -- but all of these can be
  155.     changed from the command line, see CONFIGURABLE PARAMETERS above.
  156.     For example
  157.  
  158.         ./buildzsh BLDDIR=/var/tmp/zsh/hp48sx
  159.  
  160.     will build Makefile so that by simply saying
  161.  
  162.         make -f /var/tmp/zsh/hp48sx/Makefile
  163.  
  164.     the whole zsh building process will happen in the directory
  165.     "/var/tmp/zsh/hp48sx".
  166.  
  167. FILES
  168.  
  169.     buildzsh builds three files:
  170.  
  171.         config.h and signals.h are normal C source files:
  172.         config.h contains the definitions that depend on
  173.         the particular features of the operating system variant,
  174.         signals.h contains the signal definitions.
  175.  
  176.         A makefile called Makefile customized for
  177.         the particular architecture will be built to
  178.         the building directory (by default the building directory
  179.         is the current directory).
  180.  
  181.     There are fail-safe versions of config.h, signals.h and Makefile
  182.     called config.h.sample, signals.h.sample and Makefile.sample
  183.     that can be used either as-is or as raw material if buildzsh fails.
  184.  
  185.     buildzsh itself is just a top-level script that uses the bz.*
  186.     scripts in the directory src/config.
  187.  
  188. ENVIRONMENT VARIABLES
  189.  
  190.     All of the configurable parameters (see above) (for example
  191.     CFLAGS and LIBS) are taken intact from the environment.
  192.  
  193. BUGS
  194.  
  195.     Nothing is perfect and buildzsh is bound to have its
  196.     share of bugs.  If and when modifying buildzsh becomes
  197.     a necessity, please read the file src/config/config.README.
  198.     It lists the role of each module of buildzsh and warns about
  199.     the most common pitfalls.
  200.  
  201. WARNINGS
  202.  
  203.     buildzsh is quite large piece of serious shell scripting
  204.     which is supposed to work under any Bourne shell (sh) AND
  205.     Korn shell (ksh).  Achieving this goal requires sometimes
  206.     dirty and/or obscure tricks to for example negotiate past
  207.     some bugs that appear only in some vendors' environments.
  208.  
  209.     Fiddling with buildzsh is not for the faint at heart.
  210. EOH
  211. exit 1    
  212.